<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Kyoto Cabinet: kyotocabinet::BasicDB Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Kyoto Cabinet
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacekyotocabinet.html">kyotocabinet</a>      </li>
      <li class="navelem"><a class="el" href="classkyotocabinet_1_1BasicDB.html">BasicDB</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">kyotocabinet::BasicDB Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="kyotocabinet::BasicDB" --><!-- doxytag: inherits="kyotocabinet::DB" -->
<p>Basic implementation of database.  
 <a href="classkyotocabinet_1_1BasicDB.html#details">More...</a></p>

<p><code>#include &lt;kcdb.h&gt;</code></p>

<p><a href="classkyotocabinet_1_1BasicDB-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Cursor.html">Cursor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface of cursor to indicate a record.  <a href="classkyotocabinet_1_1BasicDB_1_1Cursor.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html">Error</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html" title="Error data.">Error</a> data.  <a href="classkyotocabinet_1_1BasicDB_1_1Error.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">FileProcessor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to process the database file.  <a href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html">Logger</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to log internal information and errors.  <a href="classkyotocabinet_1_1BasicDB_1_1Logger.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html">MetaTrigger</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to trigger meta database operations.  <a href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to check progress status of long process.  <a href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7f">Type</a> { <br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa5be3e804fc9e1c8770b0bc37ce75afe9">TYPEVOID</a> =  0x00, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa21e357867392861a412ed7d982e9913b">TYPEPHASH</a> =  0x10, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa257fa7af7461025c3c47f98c6be5d9b5">TYPEPTREE</a> =  0x11, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fafe6b2d8395fdf7a6cfeaaccf95d9c3dc">TYPESTASH</a> =  0x18, 
<br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa281bc81f91b8b3fc39796f386be1f3fc">TYPECACHE</a> =  0x20, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fac885d5d2e2d3417476d606f9ddff28d4">TYPEGRASS</a> =  0x21, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7facc621efd9dc349487c9bf139735a1547">TYPEHASH</a> =  0x30, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7faf19657f41cdf16badd67d79889fef93d">TYPETREE</a> =  0x31, 
<br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa7a7e544979edd72ae4b53c5f5312a639">TYPEDIR</a> =  0x40, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa5fb8e5c5be4f7a2a051de911e0cc41c8">TYPEFOREST</a> =  0x41, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fa6c90439771c8d514da8c4f1e779c420a">TYPETEXT</a> =  0x50, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7fada9cc0cd600e803427cc15ab9ce61c06">TYPEMISC</a> =  0x80
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Database types.  <a href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7f">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664d">OpenMode</a> { <br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daac1e035a2264effff6af2f74af4fcf2d">OREADER</a> =  1 &lt;&lt; 0, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485">OWRITER</a> =  1 &lt;&lt; 1, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240">OCREATE</a> =  1 &lt;&lt; 2, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da84636e0600e10a014e61abcb53c11d39">OTRUNCATE</a> =  1 &lt;&lt; 3, 
<br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da648178f135de06196ff0a59b6d50ffc0">OAUTOTRAN</a> =  1 &lt;&lt; 4, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dac6952961b46d7d1e71df632e45d80a93">OAUTOSYNC</a> =  1 &lt;&lt; 5, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da3d1f28662fd5f8c91749aa57cc6f4732">ONOLOCK</a> =  1 &lt;&lt; 6, 
<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da12f4827b918598179bf05c0797127687">OTRYLOCK</a> =  1 &lt;&lt; 7, 
<br/>
&#160;&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da4d79a8f0bc49849b0b434fb4fda4836a">ONOREPAIR</a> =  1 &lt;&lt; 8
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open modes.  <a href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664d">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a36c9b5eaaef06891a83b98911adfd712">~BasicDB</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a36c9b5eaaef06891a83b98911adfd712"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html">Error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a0bbc7d536f192222362a98af678abd16">error</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the last happened error.  <a href="#a0bbc7d536f192222362a98af678abd16"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#abc68ab08f3f42a52cbae54ae093fad7b">set_error</a> (const char *file, int32_t line, const char *func, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">Error::Code</a> code, const char *message)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the error information.  <a href="#abc68ab08f3f42a52cbae54ae093fad7b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a6f8ee2f3bde5f5389119fe43696f9bdc">open</a> (const std::string &amp;<a class="el" href="classkyotocabinet_1_1BasicDB.html#af67d9b139fcfb2fd5bc38d97d7a1856b">path</a>, uint32_t mode=<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485">OWRITER</a>|<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240">OCREATE</a>)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a database file.  <a href="#a6f8ee2f3bde5f5389119fe43696f9bdc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a8863ffedb9604742305ece7ccdb23c2a">close</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database file.  <a href="#a8863ffedb9604742305ece7ccdb23c2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a0213c08b8dce9401ca5f5b1bc19aa4a6">accept_bulk</a> (const std::vector&lt; std::string &gt; &amp;keys, <a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *visitor, bool writable=true)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept a visitor to multiple records at once.  <a href="#a0213c08b8dce9401ca5f5b1bc19aa4a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a809c175a7a69deaa56ed6b9cef9fa973">iterate</a> (<a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *visitor, bool writable=true, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate to accept a visitor for each record.  <a href="#a809c175a7a69deaa56ed6b9cef9fa973"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#acb775c6dac437297867ef97575918d40">scan_parallel</a> (<a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *visitor, size_t thnum, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scan each record in parallel.  <a href="#acb775c6dac437297867ef97575918d40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#acf7a2e70f3c1e72be5241f0d611f3d70">synchronize</a> (bool hard=false, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">FileProcessor</a> *proc=NULL, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize updated contents with the file and the device.  <a href="#acf7a2e70f3c1e72be5241f0d611f3d70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ae0b69e1cb959b7890f84c195608aef68">occupy</a> (bool writable=true, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">FileProcessor</a> *proc=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Occupy database by locking and do something meanwhile.  <a href="#ae0b69e1cb959b7890f84c195608aef68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a258665509711eb2952544ebee55ed861">copy</a> (const std::string &amp;dest, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a copy of the database file.  <a href="#a258665509711eb2952544ebee55ed861"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a7999f8bf717cfd22ceed42bc54755f00">begin_transaction</a> (bool hard=false)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin transaction.  <a href="#a7999f8bf717cfd22ceed42bc54755f00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a2cfd959c679cdb7716eab913ac227a6c">begin_transaction_try</a> (bool hard=false)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to begin transaction.  <a href="#a2cfd959c679cdb7716eab913ac227a6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a2c32f6bb5544045cf75c5aac1e2d1cac">end_transaction</a> (bool commit=true)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">End transaction.  <a href="#a2c32f6bb5544045cf75c5aac1e2d1cac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a573aae4382f43ed148ea035baa4d5f51">size</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the database file.  <a href="#a573aae4382f43ed148ea035baa4d5f51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#af67d9b139fcfb2fd5bc38d97d7a1856b">path</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the database file.  <a href="#af67d9b139fcfb2fd5bc38d97d7a1856b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ac8807fad23476a2eb7da0c869c546727">status</a> (std::map&lt; std::string, std::string &gt; *strmap)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the miscellaneous status information.  <a href="#ac8807fad23476a2eb7da0c869c546727"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ace1d7f4a0d37c2d4e61b102bc0d0f725">set</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#ace1d7f4a0d37c2d4e61b102bc0d0f725"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#aceb9eb24d4664b0dc0f2734da66511c4">set</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#aceb9eb24d4664b0dc0f2734da66511c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a330568e1a92d74bfbc38682cd8604462">add</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a record.  <a href="#a330568e1a92d74bfbc38682cd8604462"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ae917d6aa4cba62bd808121fddb4035b0">add</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#ae917d6aa4cba62bd808121fddb4035b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ac1b65f395e4be9e9ef14973f564e3a48">replace</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#ac1b65f395e4be9e9ef14973f564e3a48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a42fce9d48b8a3744b05fc61636fab2b1">replace</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#a42fce9d48b8a3744b05fc61636fab2b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a23e776e5bd1e3c5caa0f62edffb87a54">append</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the value of a record.  <a href="#a23e776e5bd1e3c5caa0f62edffb87a54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#aed0ebc961e906fe7fb534f917b4a9f8f">append</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#aed0ebc961e906fe7fb534f917b4a9f8f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a8f8d475dcb1cfb0210a7a40c1367b286">increment</a> (const char *kbuf, size_t ksiz, int64_t num, int64_t orig=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric value of a record.  <a href="#a8f8d475dcb1cfb0210a7a40c1367b286"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a290283ef8e4c021c285b08bab9c0fe78">increment</a> (const std::string &amp;key, int64_t num, int64_t orig=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric value of a record.  <a href="#a290283ef8e4c021c285b08bab9c0fe78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a9ba95893fc9ddfdedc515157101371c2">increment_double</a> (const char *kbuf, size_t ksiz, double num, double orig=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric double value of a record.  <a href="#a9ba95893fc9ddfdedc515157101371c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a7e37a41ef1611c5712d31cfd4450552c">increment_double</a> (const std::string &amp;key, double num, double orig)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric double value of a record.  <a href="#a7e37a41ef1611c5712d31cfd4450552c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a4cc551a65eed27a7905c50aac95f43db">cas</a> (const char *kbuf, size_t ksiz, const char *ovbuf, size_t ovsiz, const char *nvbuf, size_t nvsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform compare-and-swap.  <a href="#a4cc551a65eed27a7905c50aac95f43db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a98f785851e346ce32049d70cdac36f51">cas</a> (const std::string &amp;key, const std::string &amp;ovalue, const std::string &amp;nvalue)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform compare-and-swap.  <a href="#a98f785851e346ce32049d70cdac36f51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a98b9a0b2337e16b79a22a97d4d96d04c">remove</a> (const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#a98b9a0b2337e16b79a22a97d4d96d04c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ac6b7b1fdab9e9288c8ff918bef8bf0b3">remove</a> (const std::string &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#ac6b7b1fdab9e9288c8ff918bef8bf0b3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a04721eb5a61876244bbc5c08e0a34c61">get</a> (const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#a04721eb5a61876244bbc5c08e0a34c61"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ad997b0824b30d20fefcfb7e4f8fbd96c">get</a> (const std::string &amp;key, std::string *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ad997b0824b30d20fefcfb7e4f8fbd96c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#abad0525bdccdcab5b587846a69ff0fe3">get</a> (const char *kbuf, size_t ksiz, char *vbuf, size_t max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#abad0525bdccdcab5b587846a69ff0fe3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#af884c82d9281ec9631d4ebcc32e4f5cd">check</a> (const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the existence of a record.  <a href="#af884c82d9281ec9631d4ebcc32e4f5cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a493f9a3b16aa84dd13c4bb842e709471">check</a> (const std::string &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the existence of a record.  <a href="#a493f9a3b16aa84dd13c4bb842e709471"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a54a148f11bf3ae4038bcb4b7483f7e1b">seize</a> (const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record and remove it atomically.  <a href="#a54a148f11bf3ae4038bcb4b7483f7e1b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a71f2abc5f91ccdedb495f547bcaded51">seize</a> (const std::string &amp;key, std::string *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record and remove it atomically.  <a href="#a71f2abc5f91ccdedb495f547bcaded51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a0a76b8f56d3abd00b511a77ea32fc7f2">set_bulk</a> (const std::map&lt; std::string, std::string &gt; &amp;recs, bool atomic=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Store records at once.  <a href="#a0a76b8f56d3abd00b511a77ea32fc7f2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#aa6662986e037fedc913b7aab42133dfa">remove_bulk</a> (const std::vector&lt; std::string &gt; &amp;keys, bool atomic=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove records at once.  <a href="#aa6662986e037fedc913b7aab42133dfa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#ae713d1703e4af21c3470517108b795c9">get_bulk</a> (const std::vector&lt; std::string &gt; &amp;keys, std::map&lt; std::string, std::string &gt; *recs, bool atomic=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve records at once.  <a href="#ae713d1703e4af21c3470517108b795c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a15e2b3b12551cd055ec652250780147d">dump_snapshot</a> (std::ostream *dest, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump records into a data stream.  <a href="#a15e2b3b12551cd055ec652250780147d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a39186bb54797a65ca3b642b157a4b7f0">dump_snapshot</a> (const std::string &amp;dest, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump records into a file.  <a href="#a39186bb54797a65ca3b642b157a4b7f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a0845ad7a308380fc2ad9b8e70f593f3e">load_snapshot</a> (std::istream *src, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load records from a data stream.  <a href="#a0845ad7a308380fc2ad9b8e70f593f3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#aef62097d8ad0f443db61fd46ef8afb0f">load_snapshot</a> (const std::string &amp;src, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *checker=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load records from a file.  <a href="#aef62097d8ad0f443db61fd46ef8afb0f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classkyotocabinet_1_1DB_1_1Cursor.html">Cursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#af270fcad9cfa1dce1b661c33c07165d6">cursor</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a cursor object.  <a href="#af270fcad9cfa1dce1b661c33c07165d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a527d26987a22676c4c5766bca6076c9d">log</a> (const char *file, int32_t line, const char *func, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960">Logger::Kind</a> kind, const char *message)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a log message.  <a href="#a527d26987a22676c4c5766bca6076c9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a26a13dacff680288b1169a8f27d8a34b">tune_logger</a> (<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html">Logger</a> *logger, uint32_t kinds=<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd">Logger::WARN</a>|<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad">Logger::ERROR</a>)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the internal logger.  <a href="#a26a13dacff680288b1169a8f27d8a34b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a574c85f66445ba88d65bd978b63703cc">tune_meta_trigger</a> (<a class="el" href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html">MetaTrigger</a> *trigger)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the internal meta operation trigger.  <a href="#a574c85f66445ba88d65bd978b63703cc"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#afd766e0016301f256108e8dd8d316a9c">typecname</a> (uint32_t type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the class name of a database type.  <a href="#afd766e0016301f256108e8dd8d316a9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1BasicDB.html#a7e8fd41ca7b1e3292a98030313999a31">typestring</a> (uint32_t type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the description string of a database type.  <a href="#a7e8fd41ca7b1e3292a98030313999a31"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Basic implementation of database. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This class is an abstract class to prescribe the interface of file operations and provide mix-in methods. This class can be inherited but overwriting methods is forbidden. Before every database operation, it is necessary to call the <a class="el" href="classkyotocabinet_1_1BasicDB.html#a6f8ee2f3bde5f5389119fe43696f9bdc" title="Open a database file.">BasicDB::open</a> method in order to open a database file and connect the database object to it. To avoid data missing or corruption, it is important to close every database file by the <a class="el" href="classkyotocabinet_1_1BasicDB.html#a8863ffedb9604742305ece7ccdb23c2a" title="Close the database file.">BasicDB::close</a> method when the database is no longer in use. It is forbidden for multible database objects in a process to open the same database at the same time. It is forbidden to share a database object with child processes. </dd></dl>
</div><hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7f"></a><!-- doxytag: member="kyotocabinet::BasicDB::Type" ref="aa1db8f4472965b12b6648728bcd44c7f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classkyotocabinet_1_1BasicDB.html#aa1db8f4472965b12b6648728bcd44c7f">kyotocabinet::BasicDB::Type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Database types. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa5be3e804fc9e1c8770b0bc37ce75afe9"></a><!-- doxytag: member="TYPEVOID" ref="aa1db8f4472965b12b6648728bcd44c7fa5be3e804fc9e1c8770b0bc37ce75afe9" args="" -->TYPEVOID</em>&nbsp;</td><td>
<p>void database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa21e357867392861a412ed7d982e9913b"></a><!-- doxytag: member="TYPEPHASH" ref="aa1db8f4472965b12b6648728bcd44c7fa21e357867392861a412ed7d982e9913b" args="" -->TYPEPHASH</em>&nbsp;</td><td>
<p>prototype hash database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa257fa7af7461025c3c47f98c6be5d9b5"></a><!-- doxytag: member="TYPEPTREE" ref="aa1db8f4472965b12b6648728bcd44c7fa257fa7af7461025c3c47f98c6be5d9b5" args="" -->TYPEPTREE</em>&nbsp;</td><td>
<p>prototype tree database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fafe6b2d8395fdf7a6cfeaaccf95d9c3dc"></a><!-- doxytag: member="TYPESTASH" ref="aa1db8f4472965b12b6648728bcd44c7fafe6b2d8395fdf7a6cfeaaccf95d9c3dc" args="" -->TYPESTASH</em>&nbsp;</td><td>
<p>stash database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa281bc81f91b8b3fc39796f386be1f3fc"></a><!-- doxytag: member="TYPECACHE" ref="aa1db8f4472965b12b6648728bcd44c7fa281bc81f91b8b3fc39796f386be1f3fc" args="" -->TYPECACHE</em>&nbsp;</td><td>
<p>cache hash database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fac885d5d2e2d3417476d606f9ddff28d4"></a><!-- doxytag: member="TYPEGRASS" ref="aa1db8f4472965b12b6648728bcd44c7fac885d5d2e2d3417476d606f9ddff28d4" args="" -->TYPEGRASS</em>&nbsp;</td><td>
<p>cache tree database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7facc621efd9dc349487c9bf139735a1547"></a><!-- doxytag: member="TYPEHASH" ref="aa1db8f4472965b12b6648728bcd44c7facc621efd9dc349487c9bf139735a1547" args="" -->TYPEHASH</em>&nbsp;</td><td>
<p>file hash database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7faf19657f41cdf16badd67d79889fef93d"></a><!-- doxytag: member="TYPETREE" ref="aa1db8f4472965b12b6648728bcd44c7faf19657f41cdf16badd67d79889fef93d" args="" -->TYPETREE</em>&nbsp;</td><td>
<p>file tree database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa7a7e544979edd72ae4b53c5f5312a639"></a><!-- doxytag: member="TYPEDIR" ref="aa1db8f4472965b12b6648728bcd44c7fa7a7e544979edd72ae4b53c5f5312a639" args="" -->TYPEDIR</em>&nbsp;</td><td>
<p>directory hash database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa5fb8e5c5be4f7a2a051de911e0cc41c8"></a><!-- doxytag: member="TYPEFOREST" ref="aa1db8f4472965b12b6648728bcd44c7fa5fb8e5c5be4f7a2a051de911e0cc41c8" args="" -->TYPEFOREST</em>&nbsp;</td><td>
<p>directory tree database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fa6c90439771c8d514da8c4f1e779c420a"></a><!-- doxytag: member="TYPETEXT" ref="aa1db8f4472965b12b6648728bcd44c7fa6c90439771c8d514da8c4f1e779c420a" args="" -->TYPETEXT</em>&nbsp;</td><td>
<p>plain text database </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="aa1db8f4472965b12b6648728bcd44c7fada9cc0cd600e803427cc15ab9ce61c06"></a><!-- doxytag: member="TYPEMISC" ref="aa1db8f4472965b12b6648728bcd44c7fada9cc0cd600e803427cc15ab9ce61c06" args="" -->TYPEMISC</em>&nbsp;</td><td>
<p>miscellaneous database </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664d"></a><!-- doxytag: member="kyotocabinet::BasicDB::OpenMode" ref="a61bb905975c5bb2e9d3d890e65cf664d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664d">kyotocabinet::BasicDB::OpenMode</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open modes. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664daac1e035a2264effff6af2f74af4fcf2d"></a><!-- doxytag: member="OREADER" ref="a61bb905975c5bb2e9d3d890e65cf664daac1e035a2264effff6af2f74af4fcf2d" args="" -->OREADER</em>&nbsp;</td><td>
<p>open as a reader </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485"></a><!-- doxytag: member="OWRITER" ref="a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485" args="" -->OWRITER</em>&nbsp;</td><td>
<p>open as a writer </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240"></a><!-- doxytag: member="OCREATE" ref="a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240" args="" -->OCREATE</em>&nbsp;</td><td>
<p>writer creating </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664da84636e0600e10a014e61abcb53c11d39"></a><!-- doxytag: member="OTRUNCATE" ref="a61bb905975c5bb2e9d3d890e65cf664da84636e0600e10a014e61abcb53c11d39" args="" -->OTRUNCATE</em>&nbsp;</td><td>
<p>writer truncating </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664da648178f135de06196ff0a59b6d50ffc0"></a><!-- doxytag: member="OAUTOTRAN" ref="a61bb905975c5bb2e9d3d890e65cf664da648178f135de06196ff0a59b6d50ffc0" args="" -->OAUTOTRAN</em>&nbsp;</td><td>
<p>auto transaction </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664dac6952961b46d7d1e71df632e45d80a93"></a><!-- doxytag: member="OAUTOSYNC" ref="a61bb905975c5bb2e9d3d890e65cf664dac6952961b46d7d1e71df632e45d80a93" args="" -->OAUTOSYNC</em>&nbsp;</td><td>
<p>auto synchronization </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664da3d1f28662fd5f8c91749aa57cc6f4732"></a><!-- doxytag: member="ONOLOCK" ref="a61bb905975c5bb2e9d3d890e65cf664da3d1f28662fd5f8c91749aa57cc6f4732" args="" -->ONOLOCK</em>&nbsp;</td><td>
<p>open without locking </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664da12f4827b918598179bf05c0797127687"></a><!-- doxytag: member="OTRYLOCK" ref="a61bb905975c5bb2e9d3d890e65cf664da12f4827b918598179bf05c0797127687" args="" -->OTRYLOCK</em>&nbsp;</td><td>
<p>lock without blocking </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a61bb905975c5bb2e9d3d890e65cf664da4d79a8f0bc49849b0b434fb4fda4836a"></a><!-- doxytag: member="ONOREPAIR" ref="a61bb905975c5bb2e9d3d890e65cf664da4d79a8f0bc49849b0b434fb4fda4836a" args="" -->ONOREPAIR</em>&nbsp;</td><td>
<p>open without auto repair </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a36c9b5eaaef06891a83b98911adfd712"></a><!-- doxytag: member="kyotocabinet::BasicDB::~BasicDB" ref="a36c9b5eaaef06891a83b98911adfd712" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classkyotocabinet_1_1BasicDB.html#a36c9b5eaaef06891a83b98911adfd712">kyotocabinet::BasicDB::~BasicDB</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>If the database is not closed, it is closed implicitly. </dd></dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a0bbc7d536f192222362a98af678abd16"></a><!-- doxytag: member="kyotocabinet::BasicDB::error" ref="a0bbc7d536f192222362a98af678abd16" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html">Error</a> <a class="el" href="classkyotocabinet_1_1BasicDB.html#a0bbc7d536f192222362a98af678abd16">kyotocabinet::BasicDB::error</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the last happened error. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the last happened error. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#ad261c3aee01e0add954c633f2d67e57c">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#adf0720f4a9622fef4b8ad7c9114efbbb">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#ab5c7f6f70f64299c74d8855884a3a38a">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a5574b0058edb29a5b696c53ec8b9a7bf">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a356e98971096a653bb1c5d1b3475e8f8">kyotocabinet::StashDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a770fdcbe8639f25b888482291b4a7c50">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1TextDB.html#aed78f886ac04e4ab3f027725eb49ba61">kyotocabinet::TextDB</a>, and <a class="el" href="classkyotocabinet_1_1PolyDB.html#a7d247b16ee5250e1ed7b2768f6e030c3">kyotocabinet::PolyDB</a>.</p>

</div>
</div>
<a class="anchor" id="abc68ab08f3f42a52cbae54ae093fad7b"></a><!-- doxytag: member="kyotocabinet::BasicDB::set_error" ref="abc68ab08f3f42a52cbae54ae093fad7b" args="(const char *file, int32_t line, const char *func, Error::Code code, const char *message)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classkyotocabinet_1_1BasicDB.html#abc68ab08f3f42a52cbae54ae093fad7b">kyotocabinet::BasicDB::set_error</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">Error::Code</a>&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the error information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>the file name of the program source code. </td></tr>
    <tr><td class="paramname">line</td><td>the line number of the program source code. </td></tr>
    <tr><td class="paramname">func</td><td>the function name of the program source code. </td></tr>
    <tr><td class="paramname">code</td><td>an error code. </td></tr>
    <tr><td class="paramname">message</td><td>a supplement message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6f8ee2f3bde5f5389119fe43696f9bdc"></a><!-- doxytag: member="kyotocabinet::BasicDB::open" ref="a6f8ee2f3bde5f5389119fe43696f9bdc" args="(const std::string &amp;path, uint32_t mode=OWRITER|OCREATE)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a6f8ee2f3bde5f5389119fe43696f9bdc">kyotocabinet::BasicDB::open</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em> = <code><a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485">OWRITER</a>|<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240">OCREATE</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open a database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path of a database file. </td></tr>
    <tr><td class="paramname">mode</td><td>the connection mode. <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485" title="open as a writer">BasicDB::OWRITER</a> as a writer, <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daac1e035a2264effff6af2f74af4fcf2d" title="open as a reader">BasicDB::OREADER</a> as a reader. The following may be added to the writer mode by bitwise-or: <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240" title="writer creating">BasicDB::OCREATE</a>, which means it creates a new database if the file does not exist, <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da84636e0600e10a014e61abcb53c11d39" title="writer truncating">BasicDB::OTRUNCATE</a>, which means it creates a new database regardless if the file exists, <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da648178f135de06196ff0a59b6d50ffc0" title="auto transaction">BasicDB::OAUTOTRAN</a>, which means each updating operation is performed in implicit transaction, <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dac6952961b46d7d1e71df632e45d80a93" title="auto synchronization">BasicDB::OAUTOSYNC</a>, which means each updating operation is followed by implicit synchronization with the file system. The following may be added to both of the reader mode and the writer mode by bitwise-or: <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da3d1f28662fd5f8c91749aa57cc6f4732" title="open without locking">BasicDB::ONOLOCK</a>, which means it opens the database file without file locking, <a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664da12f4827b918598179bf05c0797127687" title="lock without blocking">BasicDB::OTRYLOCK</a>, which means locking is performed without blocking, File::ONOREPAIR, which means the database file is not repaired implicitly even if file destruction is detected. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Every opened database must be closed by the <a class="el" href="classkyotocabinet_1_1BasicDB.html#a8863ffedb9604742305ece7ccdb23c2a" title="Close the database file.">BasicDB::close</a> method when it is no longer in use. It is not allowed for two or more database objects in the same process to keep their connections to the same database file at the same time. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a9bd13f6a03519f525aee2b3c9ccf8674">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#af6d0ceb4887099a12ce069dcffd6ee58">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#acc4424e8780abf35cc4ea0e846e12243">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#aff8d30ef3cd6990348c47a88983548bf">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a03a64d5770ad4ba8d70e7651499f3913">kyotocabinet::StashDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a368f4d0e72b0db3c37d368eea38cf523">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1TextDB.html#a9e5ad44b7e6c098e2b29168654480c95">kyotocabinet::TextDB</a>, and <a class="el" href="classkyotocabinet_1_1PolyDB.html#a09384a72e6a72a0be98c80a1856f34aa">kyotocabinet::PolyDB</a>.</p>

</div>
</div>
<a class="anchor" id="a8863ffedb9604742305ece7ccdb23c2a"></a><!-- doxytag: member="kyotocabinet::BasicDB::close" ref="a8863ffedb9604742305ece7ccdb23c2a" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a8863ffedb9604742305ece7ccdb23c2a">kyotocabinet::BasicDB::close</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a6661d84682336411eac6b38baf16c64d">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a825183c1c8810d538b9ce9a5ce789ffb">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#acf5dd748aed15bb2866e8f12c6e2b3f8">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a0ed5fcf37852b77268d7b7267d20bf8b">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a367504a44c75f05fb14647ec692255d5">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#abd976dad39a19f3e9f688d8dd0a63bc0">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a9a27006d8710bd736a66cef46c6d5783">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a96d3b305cb281d30778a830090e03da8">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a0213c08b8dce9401ca5f5b1bc19aa4a6"></a><!-- doxytag: member="kyotocabinet::BasicDB::accept_bulk" ref="a0213c08b8dce9401ca5f5b1bc19aa4a6" args="(const std::vector&lt; std::string &gt; &amp;keys, Visitor *visitor, bool writable=true)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a0213c08b8dce9401ca5f5b1bc19aa4a6">kyotocabinet::BasicDB::accept_bulk</a> </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *&#160;</td>
          <td class="paramname"><em>visitor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>writable</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a visitor to multiple records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">keys</td><td>specifies a string vector of the keys. </td></tr>
    <tr><td class="paramname">visitor</td><td>a visitor object. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operations for specified records are performed atomically and other threads accessing the same records are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a6f6065674099e65c6243fdd1ffbc518b">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#ac067c3b22db707ca934c8aab489faeba">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a53abd5ea363406ebe9aa3bc1f3219e35">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a00dc2fd5844aa1995e5f36340646e3b8">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a524e00481d160fb989caf82be2db13fc">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1TextDB.html#a1a8db4b064a64164816c176bbb69fcf7">kyotocabinet::TextDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a5825d5ffc7dd873582fb4d9e581044a2">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1PolyDB.html#a4e8d71d898db9a8a55f1f3752c1c2598">kyotocabinet::PolyDB</a>.</p>

</div>
</div>
<a class="anchor" id="a809c175a7a69deaa56ed6b9cef9fa973"></a><!-- doxytag: member="kyotocabinet::BasicDB::iterate" ref="a809c175a7a69deaa56ed6b9cef9fa973" args="(Visitor *visitor, bool writable=true, ProgressChecker *checker=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a809c175a7a69deaa56ed6b9cef9fa973">kyotocabinet::BasicDB::iterate</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *&#160;</td>
          <td class="paramname"><em>visitor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>writable</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterate to accept a visitor for each record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">visitor</td><td>a visitor object. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The whole iteration is performed atomically and other threads are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#abd20793d6349fdc38a6cb5c7d85af8de">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a38780730815dfcf830c348c889477587">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#abefeb7da685d9c99a7dbc8c88a7b2f49">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a6687ee72cae51c608a622a6db973d39d">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a668ed0f22f9b9538ffcde8466fc2f5ec">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#ae9858542f7b15dce4daeec8df9027549">kyotocabinet::StashDB</a>, <a class="el" href="classkyotocabinet_1_1TextDB.html#a8bdb3739091f158ea7a1b960fddc6baf">kyotocabinet::TextDB</a>, and <a class="el" href="classkyotocabinet_1_1PolyDB.html#a27be5998494e81a5fa4be24e6047f4de">kyotocabinet::PolyDB</a>.</p>

</div>
</div>
<a class="anchor" id="acb775c6dac437297867ef97575918d40"></a><!-- doxytag: member="kyotocabinet::BasicDB::scan_parallel" ref="acb775c6dac437297867ef97575918d40" args="(Visitor *visitor, size_t thnum, ProgressChecker *checker=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#acb775c6dac437297867ef97575918d40">kyotocabinet::BasicDB::scan_parallel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1DB_1_1Visitor.html">Visitor</a> *&#160;</td>
          <td class="paramname"><em>visitor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>thnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan each record in parallel. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">visitor</td><td>a visitor object. </td></tr>
    <tr><td class="paramname">thnum</td><td>the number of worker threads. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function is for reading records and not for updating ones. The return value of the visitor is just ignored. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#ac5b582f1dd74b76163773390e1680d75">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a543312a02955a03646d1ac524da887ab">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a32f27c5d0a1fbd7498a9820e05e3214f">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a339018900245b241136d0131b06dcf5d">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#addfb53f65b74a608f0c4aaa99f256117">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a759b1da386d42cc942236182c515bd78">kyotocabinet::StashDB</a>, <a class="el" href="classkyotocabinet_1_1TextDB.html#aacd7125c26ce2dc7f75bea979751a05e">kyotocabinet::TextDB</a>, and <a class="el" href="classkyotocabinet_1_1PolyDB.html#a2987a366c6c906b5af589065404c1e3d">kyotocabinet::PolyDB</a>.</p>

</div>
</div>
<a class="anchor" id="acf7a2e70f3c1e72be5241f0d611f3d70"></a><!-- doxytag: member="kyotocabinet::BasicDB::synchronize" ref="acf7a2e70f3c1e72be5241f0d611f3d70" args="(bool hard=false, FileProcessor *proc=NULL, ProgressChecker *checker=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#acf7a2e70f3c1e72be5241f0d611f3d70">kyotocabinet::BasicDB::synchronize</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hard</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">FileProcessor</a> *&#160;</td>
          <td class="paramname"><em>proc</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronize updated contents with the file and the device. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
    <tr><td class="paramname">proc</td><td>a postprocessor object. If it is NULL, no postprocessing is performed. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the postprocessor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a897d968c5d8c59ef65baa760eeb3bf49">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a95c76a2cef3f0d6e3843c1b8f45a51fb">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#ace50ae3d13ba63e258673c80cca7b5c8">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#af66e7b519cc379afe31fef0dcd374ce5">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a0b8e02efc1451ecf5ad610671274de58">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a142e5aede110bcdbe8bc5821259738a7">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#ab4bef2c0d9ee18fc46ccbbff8e534cf8">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a94da8f1f05acda3bae15d92e91599774">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="ae0b69e1cb959b7890f84c195608aef68"></a><!-- doxytag: member="kyotocabinet::BasicDB::occupy" ref="ae0b69e1cb959b7890f84c195608aef68" args="(bool writable=true, FileProcessor *proc=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ae0b69e1cb959b7890f84c195608aef68">kyotocabinet::BasicDB::occupy</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>writable</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">FileProcessor</a> *&#160;</td>
          <td class="paramname"><em>proc</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Occupy database by locking and do something meanwhile. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">writable</td><td>true to use writer lock, or false to use reader lock. </td></tr>
    <tr><td class="paramname">proc</td><td>a processor object. If it is NULL, no processing is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the processor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a9fc52545ca3b3622ff07c2ee2a7a6af9">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a2cc8738caa124218fca02cc16d95b364">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a268cf0a71c8b825131eeb84148a28879">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a1eda8983b0356dc78585bfb20841285b">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#ad41db2c5def683d9f2d054b8e6cbf6c2">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a9f9fcf0e3fec220dac0b9bddbb87d6f0">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a047cdafa5b83684291c8ef304b7d7c94">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#af1da8f917412c50fe995356c30b7e54f">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a258665509711eb2952544ebee55ed861"></a><!-- doxytag: member="kyotocabinet::BasicDB::copy" ref="a258665509711eb2952544ebee55ed861" args="(const std::string &amp;dest, ProgressChecker *checker=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a258665509711eb2952544ebee55ed861">kyotocabinet::BasicDB::copy</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a copy of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dest</td><td>the path of the destination file. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a7999f8bf717cfd22ceed42bc54755f00"></a><!-- doxytag: member="kyotocabinet::BasicDB::begin_transaction" ref="a7999f8bf717cfd22ceed42bc54755f00" args="(bool hard=false)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a7999f8bf717cfd22ceed42bc54755f00">kyotocabinet::BasicDB::begin_transaction</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hard</em> = <code>false</code></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Begin transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a7e3ad76e45dab99b13901d93a38262ce">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a85d7fa1e12bd9d8452c6618c86f10b96">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#ae263750ceefb788101c26ecfc90255d0">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#ad1b201ddde522b872d3663413a0f5d15">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a1988087af949333896cc781804c52623">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a4a6206c4b92dddb8a9dde4e582b4af18">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a0d04996cd270488c2f5c981e2b9195cb">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#ad3f76f057942cf0f26ff053db0b00233">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a2cfd959c679cdb7716eab913ac227a6c"></a><!-- doxytag: member="kyotocabinet::BasicDB::begin_transaction_try" ref="a2cfd959c679cdb7716eab913ac227a6c" args="(bool hard=false)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a2cfd959c679cdb7716eab913ac227a6c">kyotocabinet::BasicDB::begin_transaction_try</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hard</em> = <code>false</code></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Try to begin transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a079d7249a694c9f3a434aa374b8b9f37">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#aefedc762ec68e4f3d2dc702631bd25c7">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a4dfcad317e944a9da54df590840c520f">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a66d01cd13ab8f45581c987447c3e0e11">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a32b269c4a31bee3d2492a339bb9ef335">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#ae6501a3b39a8c46c0645686fadef5893">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a9fcc5adb3c6046b6dd976b3ad5b12910">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a6d15db5f50f5974fa035f3be7a871237">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a2c32f6bb5544045cf75c5aac1e2d1cac"></a><!-- doxytag: member="kyotocabinet::BasicDB::end_transaction" ref="a2c32f6bb5544045cf75c5aac1e2d1cac" args="(bool commit=true)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a2c32f6bb5544045cf75c5aac1e2d1cac">kyotocabinet::BasicDB::end_transaction</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>commit</em> = <code>true</code></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>End transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">commit</td><td>true to commit the transaction, or false to abort the transaction. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#aaac800d0e99039e4c4ebc910733b431d">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a906510c5cd61f50cb9a992227eb0e243">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a8728e3d71c45b336b417f83ebf1eb6e2">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#aff72fcd1bf09d72db39c650d0e48144d">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#aa2d052240defd43e541ebb32b96f8b03">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a6855f648dc86c9cef76e1200c278a019">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a4357716bf644ae984869ddef527b6fd2">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#abc4c0b9413258680dc6d2be8fb8747d3">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a573aae4382f43ed148ea035baa4d5f51"></a><!-- doxytag: member="kyotocabinet::BasicDB::size" ref="a573aae4382f43ed148ea035baa4d5f51" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#a573aae4382f43ed148ea035baa4d5f51">kyotocabinet::BasicDB::size</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the database file in bytes, or -1 on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a3def0d36c043569c2995ef1454581af0">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a2603372a3e0f745ad5b36f8df420d9cf">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#acdf58b2cca54cbfd5aaffbc3d8d00788">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#ae4dad3860a59e348b8e0ec74dafe67a6">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a7f94833d566301c3fecbe2640beb1508">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a7e6f0a8b3674c463e963a98ff3c5c23d">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a841cf423ae3d712ce421e4cf767b056b">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a6c256638a449926aff0f3d75b4016335">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="af67d9b139fcfb2fd5bc38d97d7a1856b"></a><!-- doxytag: member="kyotocabinet::BasicDB::path" ref="af67d9b139fcfb2fd5bc38d97d7a1856b" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string <a class="el" href="classkyotocabinet_1_1BasicDB.html#af67d9b139fcfb2fd5bc38d97d7a1856b">kyotocabinet::BasicDB::path</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the path of the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path of the database file, or an empty string on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#ac73484d4225d2e3f888c2c4af43cfc25">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a7f8f8d5a1d93bed6f0db8221ab9c5ba7">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a146aacb0c8b59955b9ee52d4d3c13ac6">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a4677c9c5066ab94338438bce51030ee8">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a37d77c8cf7cb658983ce9da8cd36c750">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a8e10775100c9577f54c42e4df63db169">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a026e2449a64b13e9c1b3f0c906310789">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a8d5482449bb202b03d3641873ca49efa">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="ac8807fad23476a2eb7da0c869c546727"></a><!-- doxytag: member="kyotocabinet::BasicDB::status" ref="ac8807fad23476a2eb7da0c869c546727" args="(std::map&lt; std::string, std::string &gt; *strmap)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ac8807fad23476a2eb7da0c869c546727">kyotocabinet::BasicDB::status</a> </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; std::string, std::string &gt; *&#160;</td>
          <td class="paramname"><em>strmap</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the miscellaneous status information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">strmap</td><td>a string map to contain the result. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a1eecb3071cfc5e407c58ae47514fda38">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a1b0d75e7c29df4c7604447d1fb460318">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a92047d400162479dbc4a354ff7929912">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a69ed1a736a8cb34be1b15e00570f27d5">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#ac2dd1444ce3263f41f5896f223ffc839">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#aa1f1aa4eea1413a010154c1e66507706">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#ae0060404761228e766294def6d8cb870">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#aeaada9119de211f8bd012c6a17f25eac">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="ace1d7f4a0d37c2d4e61b102bc0d0f725"></a><!-- doxytag: member="kyotocabinet::BasicDB::set" ref="ace1d7f4a0d37c2d4e61b102bc0d0f725" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ace1d7f4a0d37c2d4e61b102bc0d0f725">kyotocabinet::BasicDB::set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the value is overwritten. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a404f686394fed04af54989925c86b555">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="aceb9eb24d4664b0dc0f2734da66511c4"></a><!-- doxytag: member="kyotocabinet::BasicDB::set" ref="aceb9eb24d4664b0dc0f2734da66511c4" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ace1d7f4a0d37c2d4e61b102bc0d0f725">kyotocabinet::BasicDB::set</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a404f686394fed04af54989925c86b555" title="Set the value of a record.">DB::set</a> method except that the parameters are std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a35010cb7b5d738a512a50cd55bed36d4">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a330568e1a92d74bfbc38682cd8604462"></a><!-- doxytag: member="kyotocabinet::BasicDB::add" ref="a330568e1a92d74bfbc38682cd8604462" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a330568e1a92d74bfbc38682cd8604462">kyotocabinet::BasicDB::add</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the record is not modified and false is returned. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#adc4dd6b46fe5da9f18b3b138dacea71f">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="ae917d6aa4cba62bd808121fddb4035b0"></a><!-- doxytag: member="kyotocabinet::BasicDB::add" ref="ae917d6aa4cba62bd808121fddb4035b0" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a330568e1a92d74bfbc38682cd8604462">kyotocabinet::BasicDB::add</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#adc4dd6b46fe5da9f18b3b138dacea71f" title="Add a record.">DB::add</a> method except that the parameters are std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#ade9b857eaef82ff116cc4e02438a956a">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="ac1b65f395e4be9e9ef14973f564e3a48"></a><!-- doxytag: member="kyotocabinet::BasicDB::replace" ref="ac1b65f395e4be9e9ef14973f564e3a48" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ac1b65f395e4be9e9ef14973f564e3a48">kyotocabinet::BasicDB::replace</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, no new record is created and false is returned. If the corresponding record exists, the value is modified. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#abdffd77bbb95acf3ce805fd8dc9f7bb1">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a42fce9d48b8a3744b05fc61636fab2b1"></a><!-- doxytag: member="kyotocabinet::BasicDB::replace" ref="a42fce9d48b8a3744b05fc61636fab2b1" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#ac1b65f395e4be9e9ef14973f564e3a48">kyotocabinet::BasicDB::replace</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#abdffd77bbb95acf3ce805fd8dc9f7bb1" title="Replace the value of a record.">DB::replace</a> method except that the parameters are std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a8697b0fddb0eda0e5e46a3927384ed3a">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a23e776e5bd1e3c5caa0f62edffb87a54"></a><!-- doxytag: member="kyotocabinet::BasicDB::append" ref="a23e776e5bd1e3c5caa0f62edffb87a54" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a23e776e5bd1e3c5caa0f62edffb87a54">kyotocabinet::BasicDB::append</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the given value is appended at the end of the existing value. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#abd7a961826d20e91fa43a5867534a6a8">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="aed0ebc961e906fe7fb534f917b4a9f8f"></a><!-- doxytag: member="kyotocabinet::BasicDB::append" ref="aed0ebc961e906fe7fb534f917b4a9f8f" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a23e776e5bd1e3c5caa0f62edffb87a54">kyotocabinet::BasicDB::append</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#abd7a961826d20e91fa43a5867534a6a8" title="Append the value of a record.">DB::append</a> method except that the parameters are std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#ac073545b8c7f98a6d26621c097edf626">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a8f8d475dcb1cfb0210a7a40c1367b286"></a><!-- doxytag: member="kyotocabinet::BasicDB::increment" ref="a8f8d475dcb1cfb0210a7a40c1367b286" args="(const char *kbuf, size_t ksiz, int64_t num, int64_t orig=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#a8f8d475dcb1cfb0210a7a40c1367b286">kyotocabinet::BasicDB::increment</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>orig</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">num</td><td>the additional number. </td></tr>
    <tr><td class="paramname">orig</td><td>the origin number if no record corresponds to the key. If it is INT64MIN and no record corresponds, this function fails. If it is INT64MAX, the value is set as the additional number regardless of the current value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result value, or <a class="el" href="namespacekyotocabinet.html#a4e953371600e624903c0a9c1483a6711" title="The minimum value of int64_t.">kyotocabinet::INT64MIN</a> on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The value is serialized as an 8-byte binary integer in big-endian order, not a decimal string. If existing value is not 8-byte, this function fails. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#ab0270d5a77d0fab5f10191e4a6c08382">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a290283ef8e4c021c285b08bab9c0fe78"></a><!-- doxytag: member="kyotocabinet::BasicDB::increment" ref="a290283ef8e4c021c285b08bab9c0fe78" args="(const std::string &amp;key, int64_t num, int64_t orig=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#a8f8d475dcb1cfb0210a7a40c1367b286">kyotocabinet::BasicDB::increment</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>orig</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#ab0270d5a77d0fab5f10191e4a6c08382" title="Add a number to the numeric integer value of a record.">DB::increment</a> method except that the parameter is std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a92708b042898217d517e92a73fc4e20b">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a9ba95893fc9ddfdedc515157101371c2"></a><!-- doxytag: member="kyotocabinet::BasicDB::increment_double" ref="a9ba95893fc9ddfdedc515157101371c2" args="(const char *kbuf, size_t ksiz, double num, double orig=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classkyotocabinet_1_1BasicDB.html#a9ba95893fc9ddfdedc515157101371c2">kyotocabinet::BasicDB::increment_double</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>orig</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric double value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">num</td><td>the additional number. </td></tr>
    <tr><td class="paramname">orig</td><td>the origin number if no record corresponds to the key. If it is negative infinity and no record corresponds, this function fails. If it is positive infinity, the value is set as the additional number regardless of the current value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result value, or Not-a-number on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The value is serialized as an 16-byte binary fixed-point number in big-endian order, not a decimal string. If existing value is not 16-byte, this function fails. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a57e8da17c94575335e91b07955959af3">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a7e37a41ef1611c5712d31cfd4450552c"></a><!-- doxytag: member="kyotocabinet::BasicDB::increment_double" ref="a7e37a41ef1611c5712d31cfd4450552c" args="(const std::string &amp;key, double num, double orig)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classkyotocabinet_1_1BasicDB.html#a9ba95893fc9ddfdedc515157101371c2">kyotocabinet::BasicDB::increment_double</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>orig</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric double value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a57e8da17c94575335e91b07955959af3" title="Add a number to the numeric double value of a record.">DB::increment_double</a> method except that the parameter is std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#ac67203f38620d190893c933e2d17bf70">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a4cc551a65eed27a7905c50aac95f43db"></a><!-- doxytag: member="kyotocabinet::BasicDB::cas" ref="a4cc551a65eed27a7905c50aac95f43db" args="(const char *kbuf, size_t ksiz, const char *ovbuf, size_t ovsiz, const char *nvbuf, size_t nvsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a4cc551a65eed27a7905c50aac95f43db">kyotocabinet::BasicDB::cas</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ovbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ovsiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nvbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nvsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform compare-and-swap. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">ovbuf</td><td>the pointer to the old value region. NULL means that no record corresponds. </td></tr>
    <tr><td class="paramname">ovsiz</td><td>the size of the old value region. </td></tr>
    <tr><td class="paramname">nvbuf</td><td>the pointer to the new value region. NULL means that the record is removed. </td></tr>
    <tr><td class="paramname">nvsiz</td><td>the size of new old value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#aabee2bb56d152806855244a7cfa2cbff">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a98f785851e346ce32049d70cdac36f51"></a><!-- doxytag: member="kyotocabinet::BasicDB::cas" ref="a98f785851e346ce32049d70cdac36f51" args="(const std::string &amp;key, const std::string &amp;ovalue, const std::string &amp;nvalue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a4cc551a65eed27a7905c50aac95f43db">kyotocabinet::BasicDB::cas</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>ovalue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>nvalue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform compare-and-swap. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#aabee2bb56d152806855244a7cfa2cbff" title="Perform compare-and-swap.">DB::cas</a> method except that the parameters are std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#acaaee7f8996c3ae4ddd35ea79cc3a1e0">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a98b9a0b2337e16b79a22a97d4d96d04c"></a><!-- doxytag: member="kyotocabinet::BasicDB::remove" ref="a98b9a0b2337e16b79a22a97d4d96d04c" args="(const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a98b9a0b2337e16b79a22a97d4d96d04c">kyotocabinet::BasicDB::remove</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#ac1aaa8a4954cae19764c0e6d1dba3b72">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="ac6b7b1fdab9e9288c8ff918bef8bf0b3"></a><!-- doxytag: member="kyotocabinet::BasicDB::remove" ref="ac6b7b1fdab9e9288c8ff918bef8bf0b3" args="(const std::string &amp;key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a98b9a0b2337e16b79a22a97d4d96d04c">kyotocabinet::BasicDB::remove</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#ac1aaa8a4954cae19764c0e6d1dba3b72" title="Remove a record.">DB::remove</a> method except that the parameter is std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a2c86571eb8ded4699c50ae8f0eb44018">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a04721eb5a61876244bbc5c08e0a34c61"></a><!-- doxytag: member="kyotocabinet::BasicDB::get" ref="a04721eb5a61876244bbc5c08e0a34c61" args="(const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="classkyotocabinet_1_1BasicDB.html#a04721eb5a61876244bbc5c08e0a34c61">kyotocabinet::BasicDB::get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. Because the region of the return value is allocated with the the new[] operator, it should be released with the delete[] operator when it is no longer in use. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a11fe066de448a7fb003614c5fe82a46d">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="ad997b0824b30d20fefcfb7e4f8fbd96c"></a><!-- doxytag: member="kyotocabinet::BasicDB::get" ref="ad997b0824b30d20fefcfb7e4f8fbd96c" args="(const std::string &amp;key, std::string *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a04721eb5a61876244bbc5c08e0a34c61">kyotocabinet::BasicDB::get</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a11fe066de448a7fb003614c5fe82a46d" title="Retrieve the value of a record.">DB::get</a> method except that the first parameters is the key string and the second parameter is a string to contain the result and the return value is bool for success. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#adfba823060898b7a409a2b4017c7ff6b">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="abad0525bdccdcab5b587846a69ff0fe3"></a><!-- doxytag: member="kyotocabinet::BasicDB::get" ref="abad0525bdccdcab5b587846a69ff0fe3" args="(const char *kbuf, size_t ksiz, char *vbuf, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#a04721eb5a61876244bbc5c08e0a34c61">kyotocabinet::BasicDB::get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the buffer into which the value of the corresponding record is written. </td></tr>
    <tr><td class="paramname">max</td><td>the size of the buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the value, or -1 on failure. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a6b22f286e891f094da7564f4a212d8f4">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="af884c82d9281ec9631d4ebcc32e4f5cd"></a><!-- doxytag: member="kyotocabinet::BasicDB::check" ref="af884c82d9281ec9631d4ebcc32e4f5cd" args="(const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#af884c82d9281ec9631d4ebcc32e4f5cd">kyotocabinet::BasicDB::check</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check the existence of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the value, or -1 on failure. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a4af24cc337200a78f741fc702fe03e87">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a493f9a3b16aa84dd13c4bb842e709471"></a><!-- doxytag: member="kyotocabinet::BasicDB::check" ref="a493f9a3b16aa84dd13c4bb842e709471" args="(const std::string &amp;key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#af884c82d9281ec9631d4ebcc32e4f5cd">kyotocabinet::BasicDB::check</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check the existence of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a4af24cc337200a78f741fc702fe03e87" title="Check the existence of a record.">DB::check</a> method except that the parameter is std::string. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a4c5878d14e341ae4bdc80a22df244aca">kyotocabinet::DB</a>.</p>

</div>
</div>
<a class="anchor" id="a54a148f11bf3ae4038bcb4b7483f7e1b"></a><!-- doxytag: member="kyotocabinet::BasicDB::seize" ref="a54a148f11bf3ae4038bcb4b7483f7e1b" args="(const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="classkyotocabinet_1_1BasicDB.html#a54a148f11bf3ae4038bcb4b7483f7e1b">kyotocabinet::BasicDB::seize</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record and remove it atomically. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. Because the region of the return value is allocated with the the new[] operator, it should be released with the delete[] operator when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a71f2abc5f91ccdedb495f547bcaded51"></a><!-- doxytag: member="kyotocabinet::BasicDB::seize" ref="a71f2abc5f91ccdedb495f547bcaded51" args="(const std::string &amp;key, std::string *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a54a148f11bf3ae4038bcb4b7483f7e1b">kyotocabinet::BasicDB::seize</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record and remove it atomically. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original DB::seize method except that the first parameters is the key string and the second parameter is a string to contain the result and the return value is bool for success. </dd></dl>

</div>
</div>
<a class="anchor" id="a0a76b8f56d3abd00b511a77ea32fc7f2"></a><!-- doxytag: member="kyotocabinet::BasicDB::set_bulk" ref="a0a76b8f56d3abd00b511a77ea32fc7f2" args="(const std::map&lt; std::string, std::string &gt; &amp;recs, bool atomic=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#a0a76b8f56d3abd00b511a77ea32fc7f2">kyotocabinet::BasicDB::set_bulk</a> </td>
          <td>(</td>
          <td class="paramtype">const std::map&lt; std::string, std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>recs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>atomic</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">recs</td><td>the records to store. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of stored records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa6662986e037fedc913b7aab42133dfa"></a><!-- doxytag: member="kyotocabinet::BasicDB::remove_bulk" ref="aa6662986e037fedc913b7aab42133dfa" args="(const std::vector&lt; std::string &gt; &amp;keys, bool atomic=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#aa6662986e037fedc913b7aab42133dfa">kyotocabinet::BasicDB::remove_bulk</a> </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>atomic</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">keys</td><td>the keys of the records to remove. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of removed records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ae713d1703e4af21c3470517108b795c9"></a><!-- doxytag: member="kyotocabinet::BasicDB::get_bulk" ref="ae713d1703e4af21c3470517108b795c9" args="(const std::vector&lt; std::string &gt; &amp;keys, std::map&lt; std::string, std::string &gt; *recs, bool atomic=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1BasicDB.html#ae713d1703e4af21c3470517108b795c9">kyotocabinet::BasicDB::get_bulk</a> </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::map&lt; std::string, std::string &gt; *&#160;</td>
          <td class="paramname"><em>recs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>atomic</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">keys</td><td>the keys of the records to retrieve. </td></tr>
    <tr><td class="paramname">recs</td><td>a string map to contain the retrieved records. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of retrieved records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a15e2b3b12551cd055ec652250780147d"></a><!-- doxytag: member="kyotocabinet::BasicDB::dump_snapshot" ref="a15e2b3b12551cd055ec652250780147d" args="(std::ostream *dest, ProgressChecker *checker=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a15e2b3b12551cd055ec652250780147d">kyotocabinet::BasicDB::dump_snapshot</a> </td>
          <td>(</td>
          <td class="paramtype">std::ostream *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump records into a data stream. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dest</td><td>the destination stream. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a39186bb54797a65ca3b642b157a4b7f0"></a><!-- doxytag: member="kyotocabinet::BasicDB::dump_snapshot" ref="a39186bb54797a65ca3b642b157a4b7f0" args="(const std::string &amp;dest, ProgressChecker *checker=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a15e2b3b12551cd055ec652250780147d">kyotocabinet::BasicDB::dump_snapshot</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump records into a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dest</td><td>the path of the destination file. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a0845ad7a308380fc2ad9b8e70f593f3e"></a><!-- doxytag: member="kyotocabinet::BasicDB::load_snapshot" ref="a0845ad7a308380fc2ad9b8e70f593f3e" args="(std::istream *src, ProgressChecker *checker=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a0845ad7a308380fc2ad9b8e70f593f3e">kyotocabinet::BasicDB::load_snapshot</a> </td>
          <td>(</td>
          <td class="paramtype">std::istream *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load records from a data stream. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>the source stream. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aef62097d8ad0f443db61fd46ef8afb0f"></a><!-- doxytag: member="kyotocabinet::BasicDB::load_snapshot" ref="aef62097d8ad0f443db61fd46ef8afb0f" args="(const std::string &amp;src, ProgressChecker *checker=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a0845ad7a308380fc2ad9b8e70f593f3e">kyotocabinet::BasicDB::load_snapshot</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1ProgressChecker.html">ProgressChecker</a> *&#160;</td>
          <td class="paramname"><em>checker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load records from a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>the path of the source file. </td></tr>
    <tr><td class="paramname">checker</td><td>a progress checker object. If it is NULL, no checking is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af270fcad9cfa1dce1b661c33c07165d6"></a><!-- doxytag: member="kyotocabinet::BasicDB::cursor" ref="af270fcad9cfa1dce1b661c33c07165d6" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classkyotocabinet_1_1DB_1_1Cursor.html">Cursor</a>* <a class="el" href="classkyotocabinet_1_1BasicDB.html#af270fcad9cfa1dce1b661c33c07165d6">kyotocabinet::BasicDB::cursor</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a cursor object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the return value is the created cursor object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Because the object of the return value is allocated by the constructor, it should be released with the delete operator when it is no longer in use. </dd></dl>

<p>Implements <a class="el" href="classkyotocabinet_1_1DB.html#a4b3050086c939eed6bd5f0fd32d3d526">kyotocabinet::DB</a>.</p>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#a93f1873138591d62a508c0cfef53d7ba">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a54f983af2afab8f667d1e28595b224c2">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#af0924e24d436a6c4f827a2c0c6260f4d">kyotocabinet::HashDB</a>, <a class="el" href="classkyotocabinet_1_1DirDB.html#a022cc78478731810c4defb3e2e055b7b">kyotocabinet::DirDB</a>, <a class="el" href="classkyotocabinet_1_1ProtoDB.html#a8222c60d8d58fa1a45941507dc9deba1">kyotocabinet::ProtoDB&lt; STRMAP, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1CacheDB.html#a17e1259ddba5fc7d45185f715394c99b">kyotocabinet::CacheDB</a>, <a class="el" href="classkyotocabinet_1_1StashDB.html#a277edca8ea85b329a13348f9784cea2e">kyotocabinet::StashDB</a>, and <a class="el" href="classkyotocabinet_1_1TextDB.html#a8d3240913a7a8ffbeebe0392318c5562">kyotocabinet::TextDB</a>.</p>

</div>
</div>
<a class="anchor" id="a527d26987a22676c4c5766bca6076c9d"></a><!-- doxytag: member="kyotocabinet::BasicDB::log" ref="a527d26987a22676c4c5766bca6076c9d" args="(const char *file, int32_t line, const char *func, Logger::Kind kind, const char *message)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classkyotocabinet_1_1BasicDB.html#a527d26987a22676c4c5766bca6076c9d">kyotocabinet::BasicDB::log</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960">Logger::Kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write a log message. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>the file name of the program source code. </td></tr>
    <tr><td class="paramname">line</td><td>the line number of the program source code. </td></tr>
    <tr><td class="paramname">func</td><td>the function name of the program source code. </td></tr>
    <tr><td class="paramname">kind</td><td>the kind of the event. <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960ac39609b521fbe09d9c41b45561b114b6" title="debugging">Logger::DEBUG</a> for debugging, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6bf810306530147894e41520a3d918b9" title="normal information">Logger::INFO</a> for normal information, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd" title="warning">Logger::WARN</a> for warning, and <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad" title="error">Logger::ERROR</a> for fatal error. </td></tr>
    <tr><td class="paramname">message</td><td>the supplement message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a26a13dacff680288b1169a8f27d8a34b"></a><!-- doxytag: member="kyotocabinet::BasicDB::tune_logger" ref="a26a13dacff680288b1169a8f27d8a34b" args="(Logger *logger, uint32_t kinds=Logger::WARN|Logger::ERROR)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a26a13dacff680288b1169a8f27d8a34b">kyotocabinet::BasicDB::tune_logger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html">Logger</a> *&#160;</td>
          <td class="paramname"><em>logger</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>kinds</em> = <code><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd">Logger::WARN</a>|<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad">Logger::ERROR</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the internal logger. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">logger</td><td>the logger object. </td></tr>
    <tr><td class="paramname">kinds</td><td>kinds of logged messages by bitwise-or: <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960ac39609b521fbe09d9c41b45561b114b6" title="debugging">Logger::DEBUG</a> for debugging, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6bf810306530147894e41520a3d918b9" title="normal information">Logger::INFO</a> for normal information, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd" title="warning">Logger::WARN</a> for warning, and <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad" title="error">Logger::ERROR</a> for fatal error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PlantDB.html#ab3d62373c720573e45ee5efa35db63f6">kyotocabinet::PlantDB&lt; BASEDB, DBTYPE &gt;</a>, <a class="el" href="classkyotocabinet_1_1PolyDB.html#a012353e9d3ef0e8d591131536d4e0a3b">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#a24f5c9c0618809863421ce936ae57aa2">kyotocabinet::HashDB</a>, and <a class="el" href="classkyotocabinet_1_1DirDB.html#a291ca13a48656dfad8152905f1e6d413">kyotocabinet::DirDB</a>.</p>

</div>
</div>
<a class="anchor" id="a574c85f66445ba88d65bd978b63703cc"></a><!-- doxytag: member="kyotocabinet::BasicDB::tune_meta_trigger" ref="a574c85f66445ba88d65bd978b63703cc" args="(MetaTrigger *trigger)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classkyotocabinet_1_1BasicDB.html#a574c85f66445ba88d65bd978b63703cc">kyotocabinet::BasicDB::tune_meta_trigger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html">MetaTrigger</a> *&#160;</td>
          <td class="paramname"><em>trigger</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the internal meta operation trigger. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trigger</td><td>the trigger object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

<p>Implemented in <a class="el" href="classkyotocabinet_1_1PolyDB.html#a219dcefd481a834b0a9f73011f32a592">kyotocabinet::PolyDB</a>, <a class="el" href="classkyotocabinet_1_1HashDB.html#acabddc9fa6657e0ea280a08f00443cb6">kyotocabinet::HashDB</a>, and <a class="el" href="classkyotocabinet_1_1DirDB.html#a920b71be06faa384b92ef60a9009cc4c">kyotocabinet::DirDB</a>.</p>

</div>
</div>
<a class="anchor" id="afd766e0016301f256108e8dd8d316a9c"></a><!-- doxytag: member="kyotocabinet::BasicDB::typecname" ref="afd766e0016301f256108e8dd8d316a9c" args="(uint32_t type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* <a class="el" href="classkyotocabinet_1_1BasicDB.html#afd766e0016301f256108e8dd8d316a9c">kyotocabinet::BasicDB::typecname</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the class name of a database type. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>the database type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the string of the type name. </dd></dl>

</div>
</div>
<a class="anchor" id="a7e8fd41ca7b1e3292a98030313999a31"></a><!-- doxytag: member="kyotocabinet::BasicDB::typestring" ref="a7e8fd41ca7b1e3292a98030313999a31" args="(uint32_t type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* <a class="el" href="classkyotocabinet_1_1BasicDB.html#a7e8fd41ca7b1e3292a98030313999a31">kyotocabinet::BasicDB::typestring</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the description string of a database type. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>the database type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the string of the type name. </dd></dl>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Fri May 25 2012 01:21:36 for Kyoto Cabinet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
